import api from "../util/api";
// 引入微信sdk
import cloudbase from "@cloudbase/js-sdk";
// 初始化SDK
const wxApp = cloudbase.init({
  env: api.envid,
});



/**
 * 返回当前时间，默认返回的格式为 YYYY-MM-DD HH:mm:ss
 * @param {string} format 
 */
function getNowTime(format = "YYYY-MM-DD HH:mm:ss") {
  let date = new Date();
  const config = {
    YYYY: date.getFullYear(),
    MM: date.getMonth() + 1 < 10 ?
      `0${date.getMonth() + 1}` : date.getMonth() + 1,
    DD: date.getDate() < 10 ? `0${date.getDate()}` : date.getDate(),
    HH: date.getHours() < 10 ? `0${date.getHours()}` : date.getHours(),
    mm: date.getMinutes() < 10 ? `0${date.getMinutes()}` : date.getMinutes(),
    ss: date.getSeconds() < 10 ? `0${date.getSeconds()}` : date.getSeconds(),
  };
  for (let key in config) {
    format = format.replace(key, config[key]);
  }
  return format;
}

/**
 *  
 * @param 查询数据库方法
 * @param {string} name  数据库名称
 * @param {number} pageNum  起始页码
 * @param {number} pageSize  每页展示多少条数据
 * @param {object} where  查询条件
 * @param {string} orderByName 倒序排序名称
 */
async function getCoolePage(name, pageNum = 1, pageSize = 10, where = {}, orderByName = "launchTime") {
  // 先算出表中数据总数
  let {
    total
  } = await wxApp
    .database()
    .collection(name)
    .skip(pageSize * (pageNum - 1))
    .limit(pageSize)
    .where(where)
    .count();
  // 计算可以分出多少页
  let page = Math.ceil(total / pageSize);
  // 获取当前页码的数据
  let data = await wxApp
    .database()
    .collection(name)
    .skip(pageSize * (pageNum - 1))
    .limit(pageSize)
    .where(where)
    .orderBy(orderByName, "desc")
    .get();

  // 封装数据
  data.total = total;
  data.pageCount = page;
  data.pageNum = pageNum;
  data.pageSize = pageSize;
  return data;
}
/**
 * 修改数据方法
 * @param {string} name  数据库名称
 * @param {string} id 修改数据的id
 * @param {object} newData  修改后的数据
 */
async function updateColl(name, id, newData) {
  return await wxApp.database().collection(name).doc(id).update(newData);
}

/**
 * 删除数据库数据
 * @param {string} name  数据库名称
 * @param {string} id  要删除数据的id
 */
async function removeColl(name, id) {
  return await wxApp.database().collection(name).doc(id).remove()
}

export {
  getNowTime,
  getCoolePage,
  updateColl,
  removeColl
}
